package com.aaa.vegetablemarketexpress.service;

import com.aaa.vegetablemarketexpress.entity.Customer;
import com.aaa.vegetablemarketexpress.util.Page;
import com.aaa.vegetablemarketexpress.util.Result;
import com.github.pagehelper.PageInfo;
import org.springframework.stereotype.Service;

/**
 * @FileName: CustomerService
 * @Description: 客户业务逻辑接口
 * @Author: qxh
 * @CreateTime: 2025/9/10
 * @Version: 1.0.0
 */
@Service
public interface CustomerService {
    /**
     * 根据客户ID查询客户信息
     * @param customerId
     * @return
     */
    Customer selectCustomerById(Long customerId);

    /**
     * 分页查询客户列表
     * @param page
     * @return
     */
    PageInfo selectCustomerList(Page<Customer> page);

    /**
     * 添加客户
     * @param customer
     * @return
     */
    Customer insertCustomer(Customer customer);

    /**
     * 修改客户
     * @param customer
     * @return
     */
    int updateCustomer(Customer customer);

    /**
     * 删除客户（逻辑删除）
     * @param customerId
     * @return
     */
    int deleteCustomerById(Long customerId);

    /**
     * 检查客户手机号是否唯一
     * @param customer
     * @return
     */
    String checkPhoneUnique(Customer customer);

    /**
     * 审核客户
     * @param customer
     * @return
     */
    int auditCustomer(Customer customer);
    /**
     * 根据关联的用户ID查询客户（商家）信息
     * @param userId 用户ID（从登录态获取）
     * @return 客户（商家）完整信息（含审核状态）
     */
    Customer selectCustomerByUserId(Long userId);

    /**
     * 为客户添加角色（关联user_role表）
     * @param customerId 客户ID
     * @param roleIds 角色ID数组
     * @return 操作结果
     */
    int insertCustomerRoles(Long customerId, Long[] roleIds);
    /**
     * 分页查询商家列表
     * @param page
     * @return
     */
    PageInfo selectCustomerListAndStatus(Page<Customer> page);
}
